package com.kun.framework.core.config;

/**
 * 初始化接口，项目启动时会调用该接口所有的实现类重写的{@link #init()} 方法
 *
 * @author gzc
 * @since 2024/8/15
 **/
public interface Initialize extends BeanInstance {

    /**
     * 初始化方法
     */
    void init();


    /**
     * 主窗口启动后执行
     */
    void startupBefore();

    /**
     * 是否懒加载，true则程序第一次使用实现类时才会进行实例化实现类
     *
     * @return true启用懒加载，反之不启用
     */
    boolean lazyLoading();

    /**
     * 是否禁止加载，子实现类返回true的情况下，不会实例化该子实现类
     *
     * @return true禁止加载，反之不禁止
     */
    boolean disableLoading();
}
